The present invention relates to a system and method for adding an inaudible code to an audio signal and subsequently retrieving that code. Such a code may be used, for example, in an audience measurement application in order to identify a broadcast program.
There are many arrangements for adding an ancillary code to a signal in such a way that the added code is not noticed. It is well known in television broadcasting, for example, to hide such ancillary codes in non-viewable portions of video by inserting them into either the video""s vertical blanking interval or horizontal retrace interval. An exemplary system which hides codes in non-viewable portions of video is referred to as xe2x80x9cAMOLxe2x80x9d and is taught in U.S. Pat. No. 4,025,851. This system is used by the assignee of this application for monitoring broadcasts of television programming as well as the times of such broadcasts.
Other known video encoding systems have sought to bury the ancillary code in a portion of a television signal""s transmission bandwidth that otherwise carries little signal energy. An example of such a system is disclosed by Dougherty in U.S. Pat. No. 5,629,739, which is assigned to the assignee of the present application.
Other methods and systems add ancillary codes to audio signals for the purpose of identifying the signals and, perhaps, for tracing their courses through signal distribution systems. Such arrangements have the obvious advantage of being applicable not only to television, but also to radio broadcasts and to pre-recorded music. Moreover, ancillary codes which are added to audio signals may be reproduced in the audio signal output by a speaker. Accordingly, these arrangements offer the possibility of non-intrusively intercepting and decoding the codes with equipment that has microphones as inputs. In particular, these arrangements provide an approach to measuring broadcast audiences by the use of portable metering equipment carried by panelists.
In the field of encoding audio signals for broadcast audience measurement purposes, Crosby, in U.S. Pat. No. 3,845,391, teaches an audio encoding approach in which the code is inserted in a narrow frequency xe2x80x9cnotchxe2x80x9d from which the original audio signal is deleted. The notch is made at a fixed predetermined frequency (e.g., 40 Hz). This approach led to codes that were audible when the original audio signal containing the code was of low intensity.
A series of improvements followed the Crosby patent. Thus, Howard, in U.S. Pat. No. 4,703,476, teaches the use of two separate notch frequencies for the mark and the space portions of a code signal. Kramer, in U.S. Pat. No. 4,931,871 and in U.S. Pat. No. 4,945,412 teaches, inter alia, using a code signal having an amplitude that tracks the amplitude of the audio signal to which the code is added.
Broadcast audience measurement systems in which panelists are expected to carry microphone-equipped audio monitoring devices that can pick up and store inaudible codes broadcast in an audio signal are also known. For example, Aijalla et al., in WO 94/11989 and in U.S. Pat. No. 5,579,124, describe an arrangement in which spread spectrum techniques are used to add a code to an audio signal so that the code is either not perceptible, or can be heard only as low level xe2x80x9cstaticxe2x80x9d noise. Also, Jensen et al., in U.S. Pat. No. 5,450,490, teach an arrangement for adding a code at a fixed set of frequencies and using one of two masking signals, where the choice of masking signal is made on the basis of a frequency analysis of the audio signal to which the code is to be added. Jensen et al. do not teach a coding arrangement in which the code frequencies vary from block to block. The intensity of the code inserted by Jensen et al. is a predetermined fraction of a measured value (e.g., 30 dB down from peak intensity) rather than comprising relative maxima or minima.
Moreover, Preuss et al., in U.S. Pat. No. 5,319,735, teach a multi-band audio encoding arrangement in which a spread spectrum code is inserted in recorded music at a fixed ratio to the input signal intensity (code-to-music ratio) that is preferably 19 dB. Lee et al., in U.S. Pat. No. 5,687,191, teach an audio coding arrangement suitable for use with digitized audio signals in which the code intensity is made to match the input signal by calculating a signal-to-mask ratio in each of several frequency bands and by then inserting the code at an intensity that is a predetermined ratio of the audio input in that band. As reported in this patent, Lee et al. have also described a method of embedding digital information in a digital waveform in pending U.S. application Ser. No. 08/524,132.
It will be recognized that, because ancillary codes are preferably inserted at low intensities in order to prevent the code from distracting a listener of program audio, such codes may be vulnerable to various signal processing operations. For example, although Lee et al. discuss digitized audio signals, it may be noted that many of the earlier known approaches to encoding a broadcast audio signal are not compatible with current and proposed digital audio standards, particularly those employing signal compression methods that may reduce the signal""s dynamic range (and thereby delete a low level code) or that otherwise may damage an ancillary code. In this regard, it is particularly important for an ancillary code to survive compression and subsequent de-compression by the AC-3 algorithm or by one of the algorithms recommended in the ISO/IEC 11172 MPEG standard, which is expected to be widely used in future digital television broadcasting systems.
The present invention is arranged to solve one or more of the above noted problems.
According to another aspect of the present invention, a method involves adding a binary code bit to a block of a signal having a spectral amplitude and a phase, both the spectral amplitude and the phase vary within a predetermined signal bandwidth. The method comprises the following steps: a) selecting, within the block, (i) a reference frequency within the predetermined signal bandwidth, (ii) a first code frequency having a first predetermined offset from the reference frequency, and (iii) a second code frequency having a second predetermined offset from the reference frequency; b) comparing the spectral amplitude of the signal near the first code frequency to the spectral amplitude of the signal near the second code frequency; c) selecting a portion of the signal at one of the first and second code frequencies at which the corresponding spectral amplitude is smaller to be a modifiable signal component, and selecting a portion of the signal at the other of the first and second code frequencies to be a reference signal component; and d) selectively changing the phase of the modifiable signal component so that it differs by no more than a predetermined amount from the phase of the reference signal component.
According to still another aspect of the present invention, a method involves the reading of a digitally encoded message transmitted with a signal having a time-varying intensity. The signal is characterized by a signal bandwidth, and the digitally encoded message comprises a plurality of binary bits. The method comprises the following steps: a) selecting a reference frequency within the signal bandwidth; b) selecting a first code frequency at a first predetermined frequency offset from the reference frequency and selecting a second code frequency at a second predetermined frequency offset from the reference frequency; and, c) finding which one of the first and second code frequencies has a spectral amplitude associated therewith that is a maximum within a corresponding frequency neighborhood and finding which one of the first and second code frequencies has a spectral amplitude associated therewith that is a minimum within a corresponding frequency neighborhood in order to thereby determine a value of a received one of the binary bits.
According to yet another aspect of the present invention, a method involves the reading of a digitally encoded message transmitted with a signal having a spectral amplitude and a phase. The signal is characterized by a signal bandwidth, and the message comprises a plurality of binary bits. The method comprises the steps of: a) selecting a reference frequency within the signal bandwidth; b) selecting a first code frequency at a first predetermined frequency offset from the reference frequency and selecting a second code frequency at a second predetermined frequency offset from the reference frequency; c) determining the phase of the signal within respective predetermined frequency neighborhoods of the first and the second code frequencies; and d) determining if the phase at the first code frequency is within a predetermined value of the phase at the second code frequency and thereby determining a value of a received one of the binary bits.
According to yet a further aspect of the present invention, a decoder, which is arranged to decode a binary bit of a code from a block of a signal transmitted with a time-varying intensity, comprises a selector, a detector, and a bit finder. The selector is arranged to select, within the block, (i) a reference frequency within the signal bandwidth, (ii) a first code frequency at a first predetermined frequency offset from the reference frequency, and (iii) a second code frequency at a second predetermined frequency offset from the reference frequency. The detector is arranged to detect a spectral amplitude within respective predetermined frequency neighborhoods of the first and the second code frequencies. The bit finder is arranged to find the binary bit when one of the first and second code frequencies has a spectral amplitude associated therewith that is a maximum within its respective neighborhood and the other of the first and second code frequencies has a spectral amplitude associated therewith that is a minimum within its respective neighborhood.
According to another aspect of the present invention, a decoder is arranged to decode a binary bit of a code from a block of a signal transmitted with a time-varying intensity. The decoder comprises a selector, a detector, and a bit finder. The selector is arranged to select, within the block, (i) a reference frequency within the signal bandwidth, (ii) a first code frequency at a first predetermined frequency offset from the reference frequency, and (iii) a second code frequency at a second predetermined frequency offset from the reference frequency. The detector is arranged to detect the phase of the signal within respective predetermined frequency neighborhoods of the first and the second code frequencies. The bit finder is arranged to find the binary bit when the phase at the first code frequency is within a predetermined value of the phase at the second code frequency.
According to still another aspect of the present invention, an encoding arrangement encodes a signal with a code. The signal has a video portion and an audio portion. The encoding arrangement comprises an encoder and a compensator. The encoder is arranged to encode one of the portions of the signal. The compensator is arranged to compensate for any relative delay between the video portion and the audio portion caused by the encoder.
According to yet another aspect of the present invention, a method of reading a data element from a received signal comprising the following steps: a) computing a Fourier Transform of a first block of n samples of the received signal; b) testing the first block for the data element; c) setting an array element SIS of an SIS array to a predetermined value if the data element is found in the first block; d) updating the Fourier Transform of the first block of n samples for a second block of n samples of the received signal, wherein the second block differs from the first block by k samples, and wherein k less than n; e) testing the second block for the data element; and f) setting an array element SIS[a+1] of the SIS array to the predetermined value if the data element is found in the first block.
According to a further aspect of the present invention, a method for adding a binary code bit to a block of a signal varying within a predetermined signal bandwidth comprises the following steps: a) selecting a reference frequency within the predetermined signal bandwidth, and associating therewith both a first code frequency having a first predetermined offset from the reference frequency and a second code frequency having a second predetermined offset from the reference frequency; b) measuring the spectral power of the signal within the block in a first neighborhood of frequencies extending about the first code frequency and in a second neighborhood of frequencies extending about the second code frequency, wherein the first frequency has a spectral amplitude, and wherein the second frequency has a spectral amplitude; c) swapping the spectral amplitude of the first code frequency with a spectral amplitude of a frequency having a maximum amplitude in the first neighborhood of frequencies while retaining a phase angle at both the first frequency and the frequency having the maximum amplitude in the first neighborhood of frequencies; and d) swapping the spectral amplitude of the second code frequency with a spectral amplitude of a frequency having a minimum amplitude in the second neighborhood of frequencies while retaining a phase angle at both the second frequency and the frequency having the maximum amplitude in the second neighborhood of frequencies.